home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / sendmail / sendmail-5.65c+IDA-1.4.4.1 / ida / doc / part1.ms < prev    next >
Encoding:
Text File  |  1987-05-31  |  40.0 KB  |  1,353 lines

  1. .\" refer -e -l,2 -s paper.ms | tbl | pstroff -ms        -*- nroff -*-
  2. .AM
  3. .RP
  4. .ds < \v'0.2m'\s-3
  5. .ds > \s0\v'-0.2m'
  6. .de DQ            \" Double quoted string
  7. \\&\\$3\\*Q\\$1\\*U\\$2
  8. ..
  9. .de SQ            \" Single quoted string
  10. \\&\\$3`\\$1'\\$2
  11. ..
  12. .de UC            \" Uppercase string (in a smaller font)
  13. \\&\\$3\\s-1\\$1\\s+1\&\\$2
  14. ..
  15. .de UQ            \" Uppercase quoted string (in a smaller font)
  16. \\&\\$3\\*Q\\s-1\\$1\\s+1\\*U\\$2
  17. ..
  18. .de QQ            \" Quoted paragraph (possibly in a sized font)
  19. .QP
  20. .if !'\\$1'' .ps \\$1
  21. ..
  22. .de II            \" Indented, auto numbered paragraph
  23. .if !'\\$1'' .nr II \\$1-1 1
  24. .IP [\\n+(II]
  25. ..
  26. .de JB            \" Indented paragraph, bold label, extended width
  27. .IP "\fB\\$1\fR" 15
  28. ..
  29. .de JS            \" Indented paragraph, small label
  30. .IP "\s-1\\$1\s+1"
  31. ..
  32. .de AP            \" Appendix
  33. .if \\n(1T .bp
  34. .RT
  35. .if \\n(1T .sp
  36. .if !\\n(1T .BG
  37. .RT
  38. .ft 3
  39. .if n .ul 100
  40. APPENDIX \\$1:
  41. ..
  42. .de DO                \" Domain table entry, see Appendix D
  43. .br
  44. .UC \\$1
  45. \t\\$2
  46. ..
  47. .de X1                \" Generate 1st level index entry
  48. .br
  49. .ie '\\$3'' .ta \\n(LLu-\\w"\\$1"u \\n(LLuR
  50. .el .ta \\n(LLu-\\w'\\$3'u-1u \\n(LLu-\\w'\\$3'u
  51. \\$2\a\t\\$1
  52. ..
  53. .de X2                \" Generate 2nd level index entry
  54. .in 3n
  55. .nr LL \\n(LL-3n
  56. .X1 "\\$1" "\\$2"
  57. .nr LL \\n(LL+3n
  58. .in 0
  59. ..
  60. .\" ***** HERE BEGINS THE ACTUAL CODE (ie TEXT)
  61. .ND May 27, 1987
  62. .ie n .ds LH Electronic Mail Addressing
  63. .el .ds LH Electronic Mail Addressing with The IDA Sendmail Enhancement Kit
  64. .ds CH
  65. .ds RH Lennart Lo\\*:vstrand \\(co 1987
  66. .ds LF
  67. .ds CF \*- % \*-
  68. .ds RF
  69. .TL
  70. Electronic Mail Addressing in Theory and Practice
  71. .SM
  72. .br
  73. with The IDA Sendmail Enhancement Kit
  74. .if t \{\
  75. .SM
  76. .br
  77. (or The Postmaster's Last Will and Testament)
  78. .\}
  79. .AU
  80. Lennart Lo\*:vstrand*
  81. .FS
  82. * New address from July 1987: Xerox EuroPARC, 61 Regent Street,
  83. Cambridge CB2 1AB, U.K.
  84. .FE
  85. <lel@ida.liu.se>
  86. .AI
  87. Department of Computer and Information Science
  88. University of Linko\*:ping
  89. S-581 83 Linko\*:ping
  90. SWEDEN
  91. .AB
  92. This paper discusses theoretical and practical aspects of handling
  93. electronic mail addresses in a heterogeneous environment.  It argues for
  94. more intelligent Mail Transport Agents that are able to fully format
  95. addresses according to different formats and that does not unnecessarily
  96. complicate header addresses.  Also described is a set of enhancements to
  97. the
  98. .UX
  99. .I sendmail
  100. program and accompanying rewriting rules used to fulfill our two main
  101. goals: (1) To provide a canonical format for handling all electronic
  102. mail addresses in which
  103. .DQ replying
  104. regularly will work and where local users do not have to depend on the
  105. recipient's explicit route or addressing syntax when submitting a
  106. message.  (2) To design and implement a method for managing mail to and
  107. from local users in a machine independent way, allowing them to change
  108. their preferred actual mailboxes while maintaining the same visible
  109. surface addresses at all times.
  110. .FS
  111. .ps +1
  112. .sp
  113. Report no. LiTH-IDA-Ex-8715
  114. .FE
  115. .AE
  116. .NH
  117. INTRODUCTION
  118. .QQ
  119. .I
  120. While some computer-based mail addressing systems are actually easier to
  121. deal with than the paper-based model, they are the exception\*-and not
  122. the rule.
  123. .br
  124. .ti +\n(QIu
  125. Why, you might ask, has electronic mail service become so very complex?
  126. Most of the problems are simply inherent in reaching beyond a local
  127. system to connect with another.
  128. .br
  129. .R
  130. .ad r
  131. \&
  132. .[[
  133. %A David Crocker
  134. %T Networking Considered Harmful
  135. %J Unix Review
  136. %V 5
  137. %N 3
  138. %D 1987
  139. .]]
  140. .br
  141. .ad b
  142. .LP
  143. Sending electronic mail is not always as easy as it ought to be.  Too
  144. many incompatible mail addressing formats exist, forcing the presumptive
  145. user sending a message to know a great deal more than can be thought
  146. reasonable about the recipient mail system's idiosyncrasies.  This is a
  147. widely recognized problem, which can be seen as a consequence of the
  148. ever increasing interconnectivity between different computer systems,
  149. each subscribing to a different addressing standard.  There are gateways
  150. that do address transformation on messages passing from one network to
  151. another, but it is normally done in a too insufficient manner to get rid
  152. of the unintelligible hybrid addresses that often infest us.  Even worse
  153. are the many systems that assault these mixed format addresses by
  154. rewriting them to malformed or incomplete ones.  A hybrid address
  155. passing several network boundaries is often transformed in such a way
  156. that it no longer is possible to use it as a
  157. .DQ reply
  158. or error return address; not even for a human being, much less for a
  159. machine.
  160. .PP
  161. These problems are especially frequent in the
  162. .UX 
  163. world.  Networks like the
  164. .UC ARPANET
  165. and
  166. .UC CSNET
  167. have the advantage of being more internally coherent; both
  168. follow the Internet mail syntax specifications, described in
  169. .UC RFC 822
  170. \&
  171. .[[
  172. %A David Crocker
  173. %T Standard for the Format of \s-1ARPA\s+1 Internet Text Messages
  174. %S \s-1RFC\s+1\&822
  175. %D 1982
  176. .]].
  177. The
  178. .UX 
  179. world used to practice the
  180. .SQ ! -path 
  181. addressing syntax in which all addresses are relative routes, but has
  182. recently been moving over to the domain address standard of the
  183. Internet.  The present problems concern nodes that has not yet done the
  184. transition and those that
  185. .I cannot
  186. change, because their standard mailer software is unable to handle these
  187. new format addresses.  A typical example of the latter are the System V
  188. systems.  Berkeley systems have the freedom of
  189. .I sendmail (8),
  190. which unfortunately not always turns out as a blessing.  In a way, it is
  191. too easy to rewrite addresses using
  192. .I sendmail ,
  193. but too hard to control the transformations.  This often leads to strange and
  194. incompatible formats that don't belong in either standard.
  195. .PP
  196. This paper discusses the most common formats and functions electronic
  197. mail addresses have.  It argues for more intelligent Mail Transport
  198. Agents that are able to fully format addresses according to different
  199. formats and that does not unnecessarily complicate header addresses.  In
  200. the end, it moves over to describe the
  201. .I
  202. IDA Sendmail Enhancement Kit
  203. .R
  204. and the work and rationale that lies behind it.  The Kit is made up of
  205. two parts: First, the configuration file setup and the rewriting rules
  206. contained in it.  These implement a rewriting strategy based on always
  207. .I completely
  208. resolving addresses instead of being content by looking at the immediate
  209. host.  The addresses are then fully transformed again according to the
  210. respective mailer's and expected ultimate recipient's format.  Second,
  211. we describe a set of modifications to the
  212. .I sendmail
  213. source, giving it an extended functionality that in the opinion of this
  214. author should have been implemented long ago.  Typical additions are:
  215. Direct Access to Dbm(3) Files, Separate Envelope/Header Rewritings, and
  216. Multi-Token Class Matches.  The configuration file is heavily dependent
  217. of these modifications and will not function without them.
  218. .PP
  219. We have also developed a way of handling mail to or from local users in
  220. a machine independent way by hiding their actual sender and recipient
  221. addresses behind generic organization oriented addresses.  This way, one
  222. may have a fixed visible address which is dynamically associated with
  223. one or more physical mailboxes.  Mails sent from any of a person's
  224. .DQ "well known"
  225. accounts will appear to come from his generic address.  Similarly, mail
  226. to any of his generic address will be forwarded to his preferred
  227. mailbox(es).  Note that the generic addresses as a group have no
  228. connection to any particular machine.  Instead, they are merely database
  229. entries on one or more nodes.
  230. .NH
  231. NAMES, ADDRESSES, AND ROUTES
  232. .LP
  233. Larry Kluger and John Shoch has in an excellent article
  234. .[ [
  235. %A Larry Kluger
  236. %A John Shoch
  237. %T Names, Addresses, and Routes
  238. %J Unix Review
  239. %V 4
  240. %N 1
  241. %D 1986
  242. .]]
  243. described the distinction between
  244. .I names ,
  245. .I addresses ,
  246. and
  247. .I routes ,
  248. in short:
  249. .QQ
  250. .I
  251. The name of a resource refers to what we seek, an address indicates
  252. where the resource is, and a route tells us how to get there.
  253. .LP
  254. When dealing with electronic mail,
  255. .I names
  256. are typically used in identifying three kinds of entities: (1) The
  257. mailbox associated with the sender (originator) and recipient of a
  258. message, (2) The name space (domain) in which the sender/recipient is
  259. known, and (3) The computer system that houses a Mail Transfer Agent
  260. (MTA) able of delivering or forwarding messages.  Often, the two latter
  261. coincide by associating the domain of a set of mailboxes with the actual
  262. machine that implements them.  Furthermore, an
  263. .I address
  264. would be the data structure used in directly connecting to another MTA
  265. over a computer network, such as a four-byte Internet number + TCP port
  266. number, or an ordinary telephone number.  It may well happen that many
  267. names map to the same address, or that the same name have more than one
  268. address.  Lastly, a
  269. .I route
  270. consists of an ordered sequence of two or more MTA names or addresses,
  271. forming an explicit path that the message should take to reach its
  272. recipient.  Routes can be further divided into
  273. .I "system routes,"
  274. where the MTA itself is the responsible of constructing a useful path
  275. and
  276. .I "source routes,"
  277. where that responsibility lies on the person sending the message.
  278. .PP
  279. The mapping from
  280. .I names
  281. to
  282. .I addresses
  283. is essentially beyond the scope of this paper, and will only briefly be
  284. mentioned in the following sections.
  285. Thus, we have taken the liberty of using the general meaning of the word
  286. .I address
  287. to it denote both mailbox/domain name pairs as well as complete routes.
  288. Also, we are using the words
  289. .I system ,
  290. .I host ,
  291. and
  292. .I node
  293. to all denote MTAs somewhere in a network.  It is our hope that the
  294. reader should not be confused because of this.
  295. .NH
  296. MAIL ADDRESS FORMATS
  297. .LP
  298. The absolute majority of today's mailing systems use addresses,\**
  299. .FS
  300. That is, routes or mailbox/domain name pairs.
  301. .FE
  302. represented by a simple string of characters.  Some of these characters
  303. implement operators that are used to divide the address into
  304. mailbox/domain/route parts when parsed by an MTA.  Different
  305. operators have different directions of associativity, making it
  306. increasingly difficult to unambiguously parse addresses produced by
  307. combining incompatible operators of different mail address syntaxes.  It
  308. is hoped that at least some of these problems will be solved with the
  309. emergence of the structured attribute list addresses of
  310. .UC X .400.
  311. In the mean time, we have a variety of different formats in use, each
  312. subscribing to a different set of delimiting operators.  It is not uncommon to
  313. see addresses like:
  314. .QQ
  315. mcvax!enea!liuida!obelix!p_e%seismo.css.gov@relay.cs.net
  316. .LP
  317. or even
  318. .QQ
  319. enea!seismo.\s-1CSS.GOV\s+1!!\s-1OZ.AI.MIT.EDU\s+1,!\s-1MC.LCS.MIT.EDU\s+1:ebg!\s-1REAGAN.AI.MIT.EDU\s+1
  320. .LP
  321. turn up in message envelopes and headers.  The last example comes from
  322. the envelope sender address found on a message in which the
  323. .UC RFC 822
  324. route was incompletely translated into
  325. .UUCP
  326. .SQ ! -path
  327. syntax.  Now, before delving into a discussion about how these may be
  328. resolved or preferably avoided, let's take a look at what kind of
  329. addressing formats currently exist.
  330. .NH 2
  331. Relative Addresses
  332. .LP
  333. These types of addresses are by necessity all implemented as
  334. .I routes .
  335. In purely relative addresses, all node names are relative to each other,
  336. making path optimization or system routing difficult, if not impossible.
  337. For the sender of a message, this means that addresses will look
  338. different depending on his location in the network, forcing him to
  339. recompute all addresses each time he changes his location.  Even worse,
  340. in a rapidly growing network, it might even happen that an address
  341. becomes invalid overnight because some link far away has been
  342. disconnected or replaced by another.  All this makes it difficult for a
  343. presumptive user to continuously keep his addresses correct and up to
  344. date.
  345. .PP
  346. Relative addresses have since long been in use within the
  347. .UX 
  348. community, but a great deal of work has been done by an organization
  349. called
  350. .I "The \s-1UUCP\s+1 Mapping Project"
  351. in eliminating duplicate host names, thus making it possible to use
  352. absolute addresses\**
  353. .FS
  354. See the following section.
  355. .FE
  356. in a flat name space.  It is presently moving towards utilizing full
  357. domain names but is delayed by the fact that some systems, notably
  358. .I "System V"
  359. systems, cannot handle anything but
  360. .UC UUCP
  361. source routes with standard mailer software.  The addressing syntax for
  362. .UX
  363. .UC UUCP
  364. .SQ ! -paths
  365. is as follows:
  366. .QQ
  367. node!\|.\|.\|.\|!node!user
  368. .LP
  369. The route sequence is read from the left to the right, with the ultimate
  370. recipient on the rightmost end.  Other systems that have similar
  371. addressing formats are the Berknet and
  372. .UC VAX/VMS
  373. mail systems, which use:
  374. .QQ
  375. node:\|.\|.\|.\|:node:user
  376. .LP
  377. and
  378. .QQ
  379. node::\|.\|.\|.\|::node::user
  380. .LP
  381. respectively.
  382. .UC RFC 822
  383. also specifies a way of constructing explicit paths using the somewhat
  384. complicated syntax:
  385. .QQ
  386. <@node,@node,\|.\|.\|.\|:user@node>
  387. .LP
  388. Here, the message should be passed through each successive node from
  389. left to right, ending up in the last user@node's mailbox.  Note that the
  390. less than and greater than brackets are included in the syntax.  Another
  391. widely used but undocumented format is
  392. .I
  393. Ye Olde
  394. .UC ARPANET
  395. .SQ % -Kludge:
  396. .R
  397. .QQ
  398. user%node%\|.\|.\|.\|%node@node
  399. .LP
  400. which is interpreted from the right to the left by delivering the
  401. message to the node after the atsign and then instantiating the
  402. rightmost percent sign into a new atsign, etc.
  403. .NH 2
  404. Absolute Addresses
  405. .QQ
  406. .nf
  407. .I
  408. The Tao that can be told of is not the Absolute Tao;
  409. The Names that can be given are not Absolute Names.\k:
  410.  
  411. The Nameless is the origin of Heaven and Earth;
  412. The Named is it the Mother of all Things.
  413. .br
  414. .R
  415. \h'|\n:u-\w'[LaotseBC]'u'
  416. .[[
  417. %A Laotse
  418. %T Tao Te Ching
  419. %S Book 1, Verse 1
  420. %D ca 500 BC
  421. .]]
  422. .br
  423. .ad b
  424. .LP
  425. Absolute addresses have the advantage of being universally unique and
  426. thus applicable by any MTA\**
  427. .FS
  428. At least in theory\*-not all MTAs necessarily know about how to deliver
  429. to all addresses.
  430. .FE
  431. independently of where it is located.  Since the names should be
  432. uniquely identified, some way of distributing them within their name
  433. space needs to be accomplished.  The simplest way of doing this is by
  434. registering plain node names with some central name directory on a
  435. first-come-you-get-it service.  The
  436. .I "\s-1UUCP\s+1 Project"
  437. tried this to avoid duplicate
  438. .UC UUCP
  439. node names.  However, maintaining such a directory and propagating its
  440. changes easily becomes too heavy a burden to handle.  Another strategy
  441. was first adopted by the
  442. .UC ARPA 
  443. Internet community, the hierarchical domain naming system described by
  444. .UC RFC 882
  445. \&
  446. .[[
  447. %A Paul Mockapetris
  448. %T Domain Names\*-Concepts and Facilities
  449. %S \s-1RFC\s+1\&882
  450. %D 1983
  451. .]],
  452. .UC RFC 920
  453. \&
  454. .[[
  455. %A Jon Postel
  456. %A Joyce Reynolds
  457. %T Domain Requirements
  458. %S \s-1RFC\s+1\&920
  459. %D 1984
  460. .]]
  461. and others.
  462. .PP
  463. In this system, a labelled tree is built with each node in the tree
  464. denoting a specific domain.  Some nodes correspond to actual hosts,
  465. typically the leaves in the tree, while others simply map to some
  466. organizational entity, like a group, department, or institution.  The
  467. purpose of the domain naming system is to distribute the naming
  468. authority throughout the tree.  Letting each domain have the
  469. responsibility of naming the domains immediately beneath it guarantees
  470. the uniqueness of all simple domain names relative to their parents.
  471. The full, qualified domain names are constructed by concatenating each
  472. level's simple domain name with a dot in between.  For example, there
  473. might exist a certain mail computer named
  474. .UQ MC
  475. within the Laboratory of Computer Science of the Massachusetts Institute
  476. of Technology, an Educational organization.  A possible domain name for
  477. this computer would be:
  478. .QQ -1
  479. MC.LCS.MIT.EDU
  480. .LP
  481. There might be many hosts named
  482. .UQ MC,
  483. but only one within the
  484. .UQ LCS.MIT.EDU
  485. domain.  The same goes for the
  486. .UQ LCS
  487. domain within the
  488. .UQ MIT.EDU
  489. domain.  The global uniqueness of each fully qualified domain is thus
  490. guaranteed by its parentage.
  491. .PP
  492. The domain system is currently in use within the
  493. .UC ARPA
  494. Internet,
  495. .UC CSNET,
  496. and is in progress within the
  497. .UC UUCP
  498. world.  Under its anonymous root domain, it presently has six
  499. three-letter organizational domains registered and a continuously
  500. increasing number of national two-letter domains.  The organizational
  501. domains are mainly used within the U.S., and the national domains in
  502. Europe and Asia.  There are also a set of
  503. .I "de facto"
  504. network based domains in use, although not officially registered.  These
  505. are really mock domains used to incorporate hosts on physical networks
  506. that cannot or do not want to handle domain addresses.  Examples of
  507. these are
  508. .UC BITNET
  509. and still most of the
  510. .UC UUCP
  511. world.  Appendix D lists all domains currently registered with the SRI
  512. Network Information Center together with a set of otherwise frequently
  513. recognized network based domains.
  514. .NH 2
  515. Attribute Addresses
  516. .LP
  517. With the
  518. .UC CCITT \**
  519. .FS
  520. .I
  521. Comite\*' Consultatif International Te\*'le\*'phonique et
  522. Te\*'le\*'graphique,
  523. .R
  524. i.e. the International Telegraph and Telephone Consultive Committee
  525. .FE
  526. .UC X .400
  527. \&
  528. .[[
  529. %A Malaga-Torremolinos
  530. %T Message Handling Systems: System Model\\*-Service Elements
  531. %S \s-1X\s+1.400
  532. %D 1984
  533. .]]
  534. series standard for electronic mail in emergence, a new kind of
  535. addressing system is being proposed.  In this format, recipients are
  536. uniquely identified using a list of attribute-value pairs.  Some of
  537. these, like the Organization and Country attributes, are obligatory
  538. while others may be supplied only if known by the sender.  The idea is
  539. that the base attributes should be able to guide the message to a
  540. relevant directory server, while the others then are used to select the
  541. actual recipient.  Attribute sets that select no or more than one
  542. recipient will probably be considered erroneous, but could be used in
  543. selecting multiple recipients.
  544. .PP
  545. It will yet take several years before the attribute addressing scheme
  546. has come to widespread use.  It will, however, surely come\*-if nothing
  547. else, then because it has the force of the united PTTs behind it.
  548. Already, there exists guidelines for mapping between
  549. .UC RFC 822
  550. based addresses and
  551. .UC X .400,
  552. such as
  553. .UC RFC 987
  554. \&
  555. .[[
  556. %A Steven Kille
  557. %S \s-1RFC\s+1\&987
  558. %T Mapping Between \s-1X\s+1.400 and \s-1RFC\s+1\&822
  559. %D 1986
  560. .]].
  561. .NH 2
  562. Hybrid Addresses
  563. .LP
  564. With all this in mind, let's take a look at how different formats
  565. sometimes are combined and how we can resolve them.  The three major
  566. addressing formats for routing messages are:
  567. .TS
  568. l lw(2i) l.
  569. [1]    T{
  570. The
  571. .UC UUCP
  572. .SQ ! -path
  573. T}    <\fInode\*<1\*>\fP!\fInode\*<2\*>\fP!\fInode\*<3\*>\fP!\fIuser\fP>
  574. [2]    T{
  575. Ye Olde
  576. .UC ARPANET
  577. .SQ % -Kludge
  578. T}    <\fIuser\fP%\fInode\*<3\*>\fP%\fInode\*<2\*>\fP@\fInode\*<1\*>\fP>
  579. [3]    T{
  580. The
  581. .UC RFC 822
  582. route syntax
  583. T}    <@\fInode\*<1\*>\fP,@\fInode\*<2\*>\fP:\fIuser\fP@\fInode\*<3\*>\fP>
  584. .TE
  585. .LP
  586. where the latter mostly is used for envelope senders.
  587. .PP
  588. Combinations of the above usually appear in messages crossing one or
  589. more network boundaries with different addressing formats.  Since each
  590. of these formats were independently developed, it may not be obvious how
  591. they should be interpreted when combined.  Still, by reasoning a little,
  592. much can be inferred from how they incrementally are constructed.
  593. .PP
  594. Starting with the Domainist's approach to the matter, we have to give
  595. .SQ @
  596. precedence over
  597. .SQ !
  598. since this is implied by
  599. .UC RFC 822.
  600. This means that addresses like:
  601. .QQ
  602. node\*<2\*>!node\*<1\*>!user@domain
  603. .LP
  604. will be interpreted as:
  605. .QQ
  606. domain \(-> node\*<2\*> \(-> node\*<1\*> \(-> user
  607. .LP
  608. Now, since
  609. .SQ %
  610. is often the 
  611. .I "de facto"
  612. standard routing operator on top of
  613. .SQ @ ,
  614. an address like:
  615. .QQ
  616. host!user@domain
  617. .LP
  618. that is autorouted through 
  619. .I relay
  620. will probably end up looking as:
  621. .QQ
  622. host!user%domain@relay
  623. .LP
  624. meaning:
  625. .QQ
  626. relay \(-> domain \(-> host \(-> user
  627. .LP
  628. This forces us to give
  629. .SQ %
  630. priority over
  631. .SQ ! .
  632. However, a
  633. .SQ ! -path
  634. address ending with a 
  635. .DQ user%node,
  636. cannot be a domain address (no
  637. .SQ @ )
  638. and should therefore be interpreted using
  639. .UC UUCP
  640. semantics by prioritizing
  641. .SQ !
  642. over
  643. .SQ % .
  644. Thus,
  645. .QQ
  646. node\*<1\*>!node\*<2\*>!user%domain
  647. .LP
  648. should be read as:
  649. .QQ
  650. node\*<1\*> \(-> node\*<2\*> \(-> domain \(-> user
  651. .LP
  652. Mixtures with
  653. .UC RFC 822
  654. routes may look hard to read, but are actually easy to parse.  A fairly complicated address like:
  655. .QQ
  656. node\*<1\*>!node\*<2\*>!@domain\*<1\*>,@domain\*<2\*>:host!user%relay@domain\*<3\*>
  657. .LP
  658. has to be interpreted as:
  659. .QQ
  660. node\*<1\*> \(-> node\*<2\*> \(-> domain\*<1\*> \(-> domain\*<2\*> \(-> domain\*<3\*> \(-> relay \(-> host \(-> user
  661. .LP
  662. since
  663. .UC RFC 822
  664. like
  665. .SQ ! -paths
  666. associate left-to-right, and since the last
  667. .DQ localpart@domain
  668. can be unambiguously found after the colon.
  669. .PP
  670. Now, not all of us are Domainists.  Many nodes can and will only be able
  671. to interpret
  672. .UC UUCP
  673. .SQ !  -paths,
  674. which leads to complications with mixed
  675. .SQ ! -
  676. and
  677. .SQ @  -style
  678. addresses.  The only workable solution to this is to try and avoid such
  679. mixtures altogether.  The easiest way of doing this is to write them as
  680. .SQ ! -
  681. and
  682. .SQ % -style
  683. combinations, but even better would be to wrap them wholly around to the
  684. .SQ ! -path
  685. format.  They should then turned back into
  686. .SQ %
  687. and
  688. .SQ @
  689. combinations when breaking the Domain Land boundary.
  690. .NH
  691. A SHORT ANATOMY OF THE ELECTRONIC MESSAGE
  692. .LP
  693. In analogy to the written letter, there are two major parts of a
  694. message: The envelope and the contents.  The envelope is there
  695. specifically for the MTAs to handle and contains the sender address
  696. together with the message's actual recipients.  The contents are usually
  697. further subdivided into the header lines and the actual body, where only
  698. the latter is under the sender's full control.  The headers are used by
  699. the MTAs and MUAs\**
  700. .FS
  701. Mail User Agent, the program that the user directly interacts with when 
  702. reading or composing messages.
  703. .FE
  704. to store various information of interest to the recipient, such as
  705. sender, all official recipients, posting date, etc.  Although the body
  706. usually is left uninterpreted, some mail systems put constraints by
  707. limiting the length of each line or the whole message, or by only
  708. allowing printable
  709. .UC ASCII
  710. characters.
  711. .NH 2
  712. The Envelope
  713. .LP
  714. The envelope contains the physical message's actual recipients, which
  715. very well may be different from those in the headers.  Typically, a
  716. message sent to more than one recipient will be split into
  717. .I n
  718. copies, one for each network.  These messages will have the original's
  719. all recipients listed in their header lines, but each copy's envelope
  720. should only have those being delivered over the network in question.
  721. There is usually also the option of
  722. .I "Blank Carbon Copy"
  723. recipients, which per definition never shall show up in the headers.
  724. .PP
  725. The envelope will also contain the explicit path back to the sender for
  726. error messages and tracing purposes.  This path should formed by having
  727. each node that forwards the message incrementally add its name to the
  728. route, thus avoiding routing problems that otherwise may appear.  The
  729. result of each rewriting should be a full route in a suitable format
  730. leading from the current node back to the originator.
  731. .PP
  732. If the envelope recipient(s) are routes, they are handled in an
  733. analogous manner to the senders by removing the local node's name from
  734. each address before propagating it further.  Optionally, the address can
  735. be made fully relative to the immediate receiving node by removing its
  736. name from the route as well.  This should be determined on a mailer
  737. dependent basis.  The MTA has the full freedom of at any point turning a
  738. simple envelope recipient address into a route if it sees reason to do
  739. so.  This could be done on the grounds that the immediate recipient node
  740. cannot perform automatic routing.  It should, however, be avoided if
  741. possible since it is hard to keep routing tables fully updated with
  742. topological changes in distant parts of the network.  Turning envelope
  743. routes into simple addresses should also be avoided since there usually
  744. exists a good reason for a route to be there.
  745. .NH 2
  746. The Headers
  747. .LP
  748. Header addresses are not normally used by the MTA.  Exceptions may be
  749. when headers such as
  750. .DQ "Return-Receipt-To:"
  751. exists and the MTA is doing the final delivery or when the delivery of a
  752. message fails and there exists a
  753. .DQ Errors-To:
  754. header.\**
  755. .FS
  756. These are
  757. .I sendmail
  758. specific; other MTAs may have other exceptions.
  759. .FE
  760. The MTA is also allowed to rewrite, or
  761. .DQ munge,
  762. header addresses when a message is forwarded from one network to
  763. another.  This is done by first removing the addressing idiosyncrasies
  764. of the transmitting network to obtain some internal canonical format and
  765. then applying the receiving network's idiosyncrasies to produce a
  766. conforming address
  767. .[ [
  768. %A Marshall Rose
  769. %T Proposed Standard for Message Header Munging
  770. %S \s-1RFC\s+1\&886
  771. %D 1983
  772. .]].
  773. Of course, this should be done to both envelope and header addresses.
  774. .PP
  775. Even within one world, like the
  776. .UC UUCP
  777. pseudo-network, it may be necessary to
  778. .DQ munge
  779. addresses for them to be understandable by the recipient system.  For
  780. instance, many mail systems does not recognize all domains or perhaps
  781. cannot even handle anything but pure and fully routed
  782. .UC UUCP
  783. .SQ ! -paths.
  784. If the transmitting MTA does not take this into consideration, the user
  785. sending the message has to submit full source routes with each receiving
  786. network's addressing syntax embedded.  Except in the most simple cases,
  787. this task requires great knowledge\**
  788. .FS
  789. That is, a case for a
  790. .I guru !
  791. .FE
  792. about how networks are interconnected, much more than can be considered 
  793. reasonable by any casual or even experienced user.
  794. .PP
  795. .I
  796. In our opinion, this is currently the greatest obstacle in making
  797. electronic mail usable.
  798. .R
  799. On from bad to worse, these user supplied source routes that are fully
  800. contained in the headers often get rewritten into further complicated
  801. routes.  When such a message is received by its recipient, its header
  802. addresses may very well be too unintelligible to be understandable by a
  803. human being, much less by a machine.  In the best case, they will just
  804. have routes with incorrect points of reference, forcing
  805. .DQ reply
  806. messages to the other recipients to first be (automatically) routed to
  807. the first node of the path before it can start on the actual route.
  808. Then often in the opposite direction, leading half way back again.
  809. .NH
  810. ADDRESS REWRITING STRATEGIES
  811. .LP
  812. Now, given the freedom and flexibility of
  813. .I sendmail ,
  814. our project's task has been to construct a configuration file that, with
  815. the necessary enhancements to the
  816. .I sendmail
  817. source, will completely resolve and canonicalize all envelope and header
  818. addresses to an internal format.  All unqualified addresses are then
  819. officialized using the
  820. .UC TCP/IP
  821. name server function and a local
  822. .I dbm (3)
  823. based domain name table, and a route is found using a direct interface
  824. to a
  825. .I pathalias (1)
  826. routing file.
  827. Finally, using a static
  828. .I dbm (3)
  829. mailer table together again with the
  830. .UC TCP/IP
  831. name server function, the message is dispatched to the appripriate
  832. mailer which fully rewrites the addresses according to its own
  833. idiosyncrasies.
  834. .NH 2
  835. Sneak-In Preview
  836. .LP
  837. To give a taste of how the complete system performs with a realistic
  838. case, consider at the following only partly imaginary example:
  839. .QQ
  840. .nf
  841. .ne 2.1
  842. .B Envelope:
  843.     Sender: enea!seismo!relay.cs.net!cate%busch%pany.com
  844.     Recipient: obelix!p_e
  845. .ne 2.1
  846. .B Headers:
  847.     From: enea!relay.cs.net!cate%busch%pany.com
  848.     To: mcvax!enea!liuida!obelix!p_e%seismo.css.gov@relay.cs.net
  849.     cc: ree.pete%fidelio.uu.se%seismo.css.gov@relay.cs.net
  850. .fi
  851. .LP
  852. A user
  853. .I cate
  854. on the Company Inc's local host
  855. .I busch
  856. has sent a message to two Swedish recipients:
  857. .I p_e
  858. on the 
  859. .UC UUCP
  860. host
  861. .I obelix
  862. in Linko\*:ping and to
  863. .I ree.pete
  864. on the Uppsala node
  865. .I fidelio.uu.se.
  866. If the headers would be left untouched, a reply from
  867. .I p_e
  868. to both
  869. .I cate
  870. and
  871. .I ree.pete
  872. would force 
  873. .I ree.pete 's
  874. copy to go all the way back to
  875. .I relay.cs.net
  876. before it could return to Sweden and Uppsala.  Clearly, this is a waste of
  877. both resources and time when there might (and does) exist a much shorter
  878. path within the country.  With The Kit's rewriting heuristics, the same
  879. header lines will look like the following when leaving the local node:
  880. .QQ
  881. .nf
  882. .ne 2.1
  883. .B Envelope:
  884.     Sender: @majestix.liu.se,@enea.se,@seismo:cate%busch%pany.com@relay.cs.net
  885.     Recipient: p_e%obelix.liu.se@asterix.liu.se
  886. .ne 2.1
  887. .B Headers:
  888.     From: cate%busch@pany.com
  889.     To: p_e@obelix.\s-1UUCP\s+1
  890.     cc: ree.pete@fidelio.uu.se
  891. .fi
  892. .LP
  893. Here, our local node's name has been added to the envelope sender path,
  894. which also has been transformed into a 
  895. .UC RFC 822
  896. route\**.
  897. .FS
  898. Save for the
  899. .SQ <
  900. and
  901. .SQ >
  902. brackets.
  903. .FE
  904. Other options would be to have it as a
  905. .SQ ! -path
  906. or
  907. .SQ % -path.
  908. The envelope recipient has been routed via
  909. .I asterix.liu.se,
  910. and changed into a
  911. .SQ % -path,
  912. on the basis that the message is forwarded over a
  913. .UC TCP/IP
  914. connection and this is the preferred route format for most such systems.
  915. .PP
  916. Also, the route has been removed from the header
  917. .DQ From:
  918. line, leaving the first universally qualified node there together with a
  919. .SQ % -path
  920. from that point to the recipient.  The 
  921. .DQ To:
  922. line has undergone even more drastic changes.  First, the route to
  923. .I seismo.css.gov
  924. was removed since this is the first universally qualified node.  Then
  925. a table of well-known
  926. .UC UUCP
  927. relays was consulted to further compress the path.
  928. .I Mcvax ,
  929. .I enea ,
  930. and
  931. .I liuida
  932. were all members of that list.  This gave
  933. .DQ obelix!p_e
  934. as a result, which then was turned into the domain form
  935. .DQ p_e@obelix.\s-1UUCP\s+1.
  936. In the last line,
  937. .DQ ree.pete@fidelio.uu.se
  938. simply had its path removed since
  939. .UC \fISE\fP
  940. is a registered top domain.
  941. .NH 2
  942. The Configuration File
  943. .LP
  944. The IDA Sendmail Master Configuration File should be sent through the
  945. .I m4 (1)
  946. macro processor to produce an actual configuration file.
  947. Several
  948. .I m4
  949. identifiers are used to customize the file; each of them is described in
  950. .I "Appendix C: Customization Parameters" .
  951. Unlike the Berkeley version, it was not designed as a set of
  952. .I m4
  953. fragments that
  954. .DQ sources
  955. each other to form a full configuration, but rather as a single master
  956. configuration file which holds a
  957. .I bank
  958. of all possible mailers and corresponding rewriting rulesets.  The
  959. instance's actually available mailers are enabled by giving values to
  960. their corresponding
  961. .I m4
  962. identifiers.  The current version include mailer definitions for a
  963. .UC TCP/IP
  964. mailer, three kinds of
  965. .UC UUCP
  966. mailers depending on the remote node's address handling capabilities, a
  967. mock
  968. .UC DEC net
  969. mailer, as well as the
  970. .UC LOCAL
  971. and
  972. .UC PROG
  973. mailers.  Their design has been kept as clean as possible to make the
  974. construction of e.g.
  975. .UC BITNET
  976. or
  977. .UC CSNET
  978. mailers using these as templates straight-forward.
  979. .PP
  980. The rewriting rules of the Kit's configuration file are
  981. explicitly oriented towards the domain naming syntax.  They will resolve
  982. all input addresses to an internal domain based format and then rewrite
  983. them according to the selected mailer's preferences.  Internally,
  984. all addresses have the same
  985. .QQ
  986. user@.domain
  987. .LP
  988. format.  Note the dot after the atsign; it is there to make it easier
  989. to rewrite the address.  Also note
  990. that this differs substantially from the Berkeley 
  991. .DQ "whatever<@host>whatever"
  992. format.  For historical reasons, both the
  993. .UC RFC 822
  994. route syntax and
  995. .I
  996. Ye Olde
  997. .UC ARPANET
  998. .SQ % -Kludge
  999. .R
  1000. are used internally to represent routes when only one of them should be
  1001. sufficient.
  1002. .NH 2
  1003. Canonicalizing the Address
  1004. .LP
  1005. Ruleset 3 canonicalizes all addresses, making them conform to our
  1006. internal format.  After the canonicalization, the
  1007. .DQ user
  1008. part may end up containing a route in either standard
  1009. .UC RFC 822
  1010. format or using the
  1011. .SQ % -path
  1012. format.
  1013. .SQ ! -,
  1014. .SQ : -,
  1015. and
  1016. .SQ :: -style
  1017. paths are rewritten into
  1018. .UC RFC 822
  1019. routes.  Reasonable mixtures of route formats are resolved
  1020. using the strategies described in the section about
  1021. .I "Hybrid Addresses" .
  1022. As an option, the (untested)
  1023. .UC UUCPPRECEDENCE
  1024. switch may be turned on in the configuration master file.  This will
  1025. enable some simple heuristics that will decide between domain style and
  1026. .UC UUCP
  1027. .SQ ! -path
  1028. prioritized unpacking depending on whether the 
  1029. .I domain
  1030. is qualified or not.  In any case, ruleset 3 will make sure that the
  1031. .I domain
  1032. part of all
  1033. .DQ user@.domain
  1034. addresses are mapped to their full, official domain names whenever
  1035. possible using both the
  1036. .UC TCP/IP
  1037. name server and a dbm domaintable.  It also goes through some effort to
  1038. repair malformed addresses, but much of this is probably too site
  1039. specific to be generally useful.
  1040. .PP
  1041. Since
  1042. .SQ ! -paths
  1043. are internally represented as
  1044. .UC RFC 822
  1045. routes, you should not be surprised when you see an address like:
  1046. .QQ
  1047. foo!bar!baz!user
  1048. .LP
  1049. first be transformed into:
  1050. .QQ
  1051. @foo.\s-1UUCP\s+1,@bar:user@baz
  1052. .LP
  1053. and then to:
  1054. .QQ
  1055. bar:user@baz@.foo.\s-1UUCP\s+1
  1056. .LP
  1057. The
  1058. .UC UUCP
  1059. domain of
  1060. .I foo
  1061. has been inferred from the 
  1062. .SQ ! -style
  1063. syntax.  If
  1064. .I foo
  1065. had been known by the domaintable to have specific domain name, that had
  1066. been used instead.  Nothing can be inferred about the nodes
  1067. .I bar
  1068. and
  1069. .I baz ,
  1070. since we they may be local to
  1071. .I foo .
  1072. Now, since the pure
  1073. .UC RFC 822
  1074. route doesn't conform to our internal format, i.e. it does not have a
  1075. .DQ user
  1076. part followed by an atsign-dot and a
  1077. .DQ domain,
  1078. we had to rearrange it a little.  The closest node of the route was thus
  1079. extracted and added the right side of the rest of the route together
  1080. with the atsign-dot.  It may not be very pretty to look at, but it is
  1081. easier to handle this way.
  1082. .PP
  1083. Note that there is a risk of confusing
  1084. .UC UUCP
  1085. node names with local hosts using the domaintable lookup.  For example,
  1086. if you had a local node
  1087. .I linus
  1088. with a full domain name of
  1089. .I linus.liu.se
  1090. and received an address like
  1091. .DQ linus!user,
  1092. this would be interpreted as the local
  1093. .I linus
  1094. and rewritten into
  1095. .DQ user@linus.liu.se.
  1096. This is probably right for envelope recipients, but not so surely in
  1097. header lines.  You can define
  1098. .UC BANGIMPLIESUUCP
  1099. if you want to disable the domaintable qualification.
  1100. .NH 2
  1101. Finding Route and Mailer
  1102. .QQ
  1103. .I
  1104. .in +\n(QIu
  1105. .ti -\n(QIu
  1106. \*QWould you tell me, please, which way I ought to go from here?\*U
  1107. .br
  1108. .ti -\n(QIu
  1109. \*QThat depends a good deal on where you want to get to,\*U said the Cat.
  1110. .br
  1111. .in -\n(QIu
  1112. .R
  1113. .ad r
  1114. \&
  1115. .[[
  1116. %A Lewis Carrol
  1117. %T Alice in Wonderland
  1118. %D 1896
  1119. .]]
  1120. .br
  1121. .ad b
  1122. .LP
  1123. Before ruleset 0 tries to find an applicable mailer, it digests all
  1124. routes through the local host by stripping off its own name and sending
  1125. the address through ruleset 3 again.  It then has four strategies of
  1126. finding a suitable mailer for the address:
  1127. .II 1
  1128. Try to find a mailer that will connect to the immediate host in the
  1129. address.
  1130. .II
  1131. Try to find a route to the address' domain using a
  1132. .I dbm (3)
  1133. routing table and a mailer that will connect to the route's closest
  1134. node.
  1135. .II
  1136. Use the firm-wired
  1137. .UC RELAY_MAILER
  1138. and
  1139. .UC RELAY_HOST
  1140. pairs to automatically forward the message.
  1141. .II
  1142. Give up; send the address to the
  1143. .UC ERROR
  1144. mailer.
  1145. .LP
  1146. The code that determines if a mailer directly can deliver to a certain
  1147. domain is found in ruleset 26.\**
  1148. .FS
  1149. Yes, I too wish that named rulesets would be available in
  1150. .I sendmail .
  1151. Perhaps somebody should convert this configuration file into
  1152. .I ease .
  1153. .FE
  1154. It does this on a per mailer bases with the following order of priority:
  1155. .IP \s-1LOCAL\s+1 10
  1156. If the supplied domain is any of local host's names (member of the
  1157. .B $w
  1158. class), or if the complete address is found in the
  1159. .I aliases (5)
  1160. file, the message is delivered locally.  The latter type of local
  1161. delivery will cause the address to be expanded to the RHS of the alias
  1162. entry and the complete process to recurse.
  1163. .IP \\\\k:\\fISpecial\\fP\\\\h'|\\\\n:u'\\\\v'+1'\\fIMailers\\fP\\\\v'-1'
  1164. In order to override the standard mailer selection, a
  1165. special dbm
  1166. .I mailertable
  1167. may be used to force addresses to be delivered using specific mailers.
  1168. If the address' domain is found in the
  1169. .I mailertable ,
  1170. the associated mailer will be used.  The mailer table should map
  1171. official domain names to
  1172. .DQ mailer:host
  1173. pairs, with a colon between the mailer and the host.
  1174. .IP \s-1TCP/IP\s+1
  1175. With the new
  1176. .I default
  1177. argument of the
  1178. .UC TCP/IP
  1179. nameserver lookup function, it is possible to determine if an address
  1180. can be delivered using this protocol family without relying on static
  1181. host tables.  If the address' domain is known to the
  1182. .UC TCP/IP
  1183. nameserver, it is returned together with its canonicalized host name.
  1184. .IP \s-1DEC\s+1net
  1185. The
  1186. .UC DEC net
  1187. mailer does not share the network based nameserver facilities of the
  1188. .UC TCP/IP
  1189. mailer, and thus has to rely on a host table.  This is done with a
  1190. two-phase operation\*-first the domain is mapped to a
  1191. .UC DEC net
  1192. name, if known, then
  1193. the the
  1194. .UC DEC net
  1195. host name is checked in the list of connectable
  1196. .UC DEC net
  1197. hosts before it is returned.  This is because some
  1198. .UC DEC net
  1199. nodes cannot talk across area boundaries, forcing recipient addresses to
  1200. be explicitly routed over an intermediary host.
  1201. .I Note:
  1202. The supplied
  1203. .UC DEC net
  1204. mailer uses a
  1205. .UC TCP/IP
  1206. connection to a
  1207. .UC DEC system-20
  1208. acting as gateway.  A real implementation should remove the immediate
  1209. node from routes before returning them, but we cannot do this.
  1210. .IP \s-1UUCP\s+1
  1211. The
  1212. .UC UUCP
  1213. mailer is also determined with a two-phase operation\*-first the domains
  1214. is mapped through the
  1215. .UC UUCP
  1216. translation table, returning the
  1217. .UC UUCP
  1218. node name, if known.  The
  1219. .UC UUCP
  1220. mailer will then be selected only if the
  1221. .UC UUCP
  1222. name is known to be directly connectable by us (normally determined
  1223. using the /usr/lib/uucp/L.sys file).  All nodes found this way will be
  1224. sent to through the
  1225. .DQ dumb
  1226. .UC UUCP
  1227. mailer.  Delivery using either the
  1228. .UC UUCP-A
  1229. or the
  1230. .UC UUCP-B
  1231. mailer has to be determined using the special mailertable previously
  1232. mentioned.
  1233. .LP
  1234. If an address needs to be routed, i.e. if the first pass through ruleset
  1235. 26 fails, it is given to ruleset 22 where its domain is looked up in a
  1236. .I pathalias (1)
  1237. type routing table.  Routes to explicit domain/host names are preferred
  1238. over general (parent) domain routes.  Before the new address is
  1239. returned, it is sent through the canonicalization routines of ruleset 3.
  1240. This makes specific
  1241. .I pathalias
  1242. route syntax effectively ineffective.  The normal way would be not to
  1243. specify any special routing syntax at all to
  1244. .I pathalias ,
  1245. but to invariably let it produce
  1246. .SQ ! -paths.
  1247. .NH 2
  1248. Externalizing the Address
  1249. .LP
  1250. After a mailer has been chosen, addresses are rewritten using rulesets 1
  1251. and 2 for envelope senders/recipients and rulesets 5 and 6 for header
  1252. senders/recipients.  Envelope senders are left untouched by this
  1253. process, but envelope recipients will have
  1254. .UC RFC 822
  1255. routes turned into
  1256. .SQ % -paths.
  1257. Header
  1258. .UC RFC 822
  1259. routes will also be turned into
  1260. .SQ % -paths
  1261. and then gently compressed by having paths to fully qualified domains
  1262. and
  1263. .UC UUCP
  1264. relay-to-relay paths removed.
  1265. Header senders will furthermore have their host names hidden by
  1266. .UC HIDDENNAME,
  1267. if defined, and their addresses filtered through the
  1268. .UC GENERICFROM
  1269. table, if available.
  1270. .PP
  1271. When this is done, the mailer specific rewriting phase starts.  The
  1272. .UC LOCAL
  1273. and
  1274. .UC PROG
  1275. mailers does not do any further rewriting as supplied, but could be
  1276. convinced to produce
  1277. .SQ ! -paths
  1278. for
  1279. .UC UUCP
  1280. routes if preferred [using ruleset 15 or a variant thereof].
  1281. .PP
  1282. The
  1283. .UC TCP/IP
  1284. and
  1285. .UC DEC net
  1286. mailers will add a call to ruleset 24 for all envelope recipients.  This
  1287. will turn domains corresponding to
  1288. .UC DEC net
  1289. nodes into flatspaced
  1290. .UC DEC net
  1291. host names, since domains are not supported there.  This should really
  1292. not be done in the
  1293. .UC TCP/IP
  1294. mailer, but all our
  1295. .UC DEC net
  1296. traffic is presently routed over a
  1297. .UC TCP/IP
  1298. link.  Since no special rewriting is done for envelope senders, this
  1299. means that they normally will appear in
  1300. .UC RFC 822
  1301. route format using these as well as any of the previous mailers.
  1302. .PP
  1303. There are three variants of the
  1304. .UC UUCP
  1305. mailer depending on the remote node's address handling capabilities.
  1306. The
  1307. .DQ dumb
  1308. version, simply called
  1309. .UC UUCP ,
  1310. corresponds closely to the class 1 mailer of
  1311. .UC RFC 976
  1312. \&
  1313. .[[
  1314. %A Mark Horton
  1315. %T \s-1UUCP\s+1 Mail Interchange Format Standard
  1316. %S \s-1RFC\s+1\&976
  1317. %D 1986
  1318. .]].
  1319. It will rewrite all addresses into
  1320. .SQ ! -format,
  1321. and makes all header addresses
  1322. .SQ ! -relative
  1323. the recipient node, routed through the transmitting node if
  1324. necessary.\**
  1325. .FS
  1326. See the new
  1327. .UC M_RELATIVIZE
  1328. mailer flag in the following section.
  1329. .FE
  1330. The
  1331. .UC UUCP-A
  1332. is closer to the
  1333. .UC RFC 976
  1334. classes 2 and 3 mailers in that it will let all header addresses stay in
  1335. .SQ @ -format,
  1336. but change envelope addresses to
  1337. .SQ ! -paths
  1338. whenever applicable.  The
  1339. .UC UUCP-B
  1340. mailer, finally, functions as the
  1341. .UC UUCP-A
  1342. mailer but will in addition supply envelope senders in
  1343. .UC RFC 822
  1344. route format and transmit the message to a
  1345. .I bsmtp
  1346. program on the remote node.
  1347. .PP
  1348. Ruleset 4 will as usual make the address truly external.  In our case,
  1349. this means by removing the dot after the atsign and by moving the
  1350. immediate domain to the head of
  1351. .UC RFC 822
  1352. routes.
  1353.